const fs = require('fs');
const path = require('path');
const archiver = require('archiver');

// 定义 dist 目录和输出 zip 文件的路径
const distPath = path.join(__dirname, '../dist'); // 从 /scripts 目录向上找到根目录的 dist
const outputZipPath = path.join(__dirname, '../dist.zip'); // 在根目录生成 dist.zip

// 创建一个可写流，用于写入 zip 文件
const output = fs.createWriteStream(outputZipPath);
const archive = archiver('zip', {
    zlib: { level: 9 } // 设置压缩级别
});

// 监听完成事件
output.on('close', () => {
    console.log(`打包完成，文件大小：${archive.pointer()} 字节`);
});

// 监听错误事件
archive.on('error', (err) => {
    throw err;
});

// 将 zip 文件与可写流关联
archive.pipe(output);

// 将 dist 目录添加到 zip 文件中，并保留 dist 目录结构
archive.directory(distPath, 'dist');

// 完成打包
archive.finalize();
